STREAMS-based vs. Legacy Pipe Performance Comparison
نویسنده
چکیده
With the objective of contrasting performance between STREAMS and legacy approaches to system facilities, a comparison is made between the tested performance of the Linux legacy pipe implementation and the STREAMS-based pipe implementation using the Linux Fast-STREAMS package [? ]. 1 Background Pipes have a rich history in the UNIX operating system. Present on early Bell Laboratories UNIX Versions, pipes found their way into both BSD and System V releases. Finally, in 4.4BSD pipes are implemented with Sockets and in System V Release 4 pipes are implemented with STREAMS. 1.1 STREAMS STREAMS is a facility first presented in a paper by Dennis M. Ritchie in 1984 [? ], originally implemented on 4.1BSD and later part of Bell Laboratories Eighth and Ninth Edition UNIX, incorporated into UNIX System V Release 3 and enhanced in UNIX System V Release 4 and further in UNIX System V Release 4.2. STREAMS was used in SVR4 for terminal input-output, pseudo-terminals, pipes, named pipes (FIFOs), interprocess communication and networking. Since its release in System V Release 3, STREAMS has been implemented across a wide range of UNIX, UNIX-like and UNIX-based systems, making its implementation and use an ipso facto standard. STREAMS is a facility that allows for a reconfigurable full duplex communications path, Stream, between a user process and a driver in the kernel. Kernel protocol modules can be pushed onto and popped from the Stream between the user process and driver. The Stream can be reconfigured in this way by a user process. The user process, neighbouring protocol modules and the driver communicate with each other using a message passing scheme. This permits a loose coupling between protocol modules, drivers and user processes, allowing a third-party and loadable kernel module approach to be taken toward the provisioning of protocol modules on platforms supporting STREAMS. On UNIX System V Release 4.2, STREAMS was used for terminal input-output, pipes, FIFOs (named pipes), and network communications. Modern UNIX, UNIX-like and UNIX-based systems providing STREAMS normally support some degree of network communications using STREAMS; however, many do not support STREAMSbased pipe and FIFOs or terminal input-output directly or without reconfiguration. 1.2 Pipe Implementation Traditionally there have been two approaches to implementation of pipes and named pipes (FIFOs): Legacy Approach to Pipes. Under the 4.1BSD or SVR3 approach, pipes were implemented using anonymous FIFOs. That is, when a pipe was opened, a new instance of a FIFO was obtained, but which was not attached to a node in the file system and which had two file descriptors: one open for writing and the other opened for reading. As FIFOs are a fundamentally unidirectional concept, legacy pipes can only pass data in one direction. Also, legacy pipes do not support the concept of record boundaries and only support a byte stream. Each end of the pipe uses a the legacy interface and they do not provide any of the advanced capabilities provided by STREAMS. SVR4 Approach to Pipes. Under the SVR4 approach, both pipes and FIFOs are implemented using STREAMS [? ]. When a pipe is opened, a new instance of a STREAMS-based pipe is obtained, but which is attached to a non-accessible node in the fifofs file system instead of the normal STREAMS specfs file system. Although one file descriptor was opened for read and the other for write, with a STREAMS-based pipe it is possible to reopen both for reading and writing.
منابع مشابه
STREAMS vs. Sockets Performance Comparison for UDP
With the objective of contrasting performance between STREAMS and legacy approaches to system facilities, a comparison is made between the tested performance of the Linux Native Sockets UDP implementation and STREAMS TPI UDP and XTIoS UDP implementations using the Linux Fast-STREAMS package [? ].
متن کاملSTREAMS vs. Sockets Performance Comparison for SCTP
With the objective of contrasting performance between STREAMS and legacy approaches to system facilities, a comparison is made between the tested performance of the Linux Native Sockets TCP implementation and STREAMS TPI SCTP and XTIoS TCP implementations using the Linux Fast-STREAMS package [? ].
متن کاملThe Overall Heat Transfer Characteristics of a Double Pipe Heat Exchanger: Comparison of Experimental Data with Predictions of Standard Correlations
The single-phase flow and thermal performance of a double pipe heat exchanger are examined by experimental methods. The working fluid is water at atmospheric pressure. Temperature measurements at the inlet and outlet of the two streams and also at an intermediate point half way between the inlet and outlet is made, using copper-constantan thermocouple wires. Mass flow rates for each stream are ...
متن کاملCoordination between parallel TCP streams on Long Fat Pipe Network
“Data Reservoir” is a file sharing facility system which uses parallel streams for huge data transfer on Long Fat Pipe Network. While experimenting Data Reservoir system, we observed that performances of parallel streams disperse a lot, which results in damage on total performance. To equalize throughput of parallel streams, we propose “Dulling Edges of Cooperative Parallel streams(DECP)”. This...
متن کاملPerformance Evaluation of Media-based Modulation in Comparison with Spatial Modulation and Legacy SISO/MIMO
The idea of Media-based Modulation (MBM), introduced in [1] [2], is based on embedding information in the variations of the transmission media (channel states). This is in contrast to legacy wireless systems (called Signal-Based Modulation, SBM, in current article) where data is embedded in a RadioFrequency (RF) source prior to the transmit antenna. MBM offers several advantages vs. legacy syst...
متن کامل